/**
 * @file demo191.c
 * @author WRS (1352509846@qq.com)
 * @brief 位1的个数
 * 编写一个函数，输入一个是无符号整数（以二进制串的形式）
 * 返回其中二进制表达式中数字位数‘1’的个数
 * @version 0.1
 * @date 2021-09-03
 * 
 * @copyright Copyright (c) 2021
 * 
 */

#include <stdio.h>
typedef unsigned int uint32_t;

int hammingWeight(uint32_t n) 
{
    int ret = 0;
    for(int i=0; i<32; i++)
    {
        if(n&(1u<<i))
        {
            ret++;
        }
    }
    return ret;
}

int main(int argc, char const *argv[])
{
    int a;
    printf("请输入一个二级制数：");

    scanf("%d",&a);
    printf("1的个数：%d\n",hammingWeight(a));

    return 0;
}

    return 0;
}
